TMeter :: TMeter

Что такое TMeter?

TMeter - это программа предназначенная для посчета и мониторинга IP-трафика в реальном масштабе времени через PPP-соединение или в Ethernet-сегменте.

Каждый IP-пакет имеет определенную структуру. TMeter умеет собирать IP-пакеты, анализировать заголовки, классифицировать и вычислять суммарный объем трафика. Основные возможности TMeter:

  • гибкая система учета трафика по различным признакам (по типам протокола, по IP-адресам, по TCP- или UDP-портам)
  • ежедневное и ежемесячное автоматическое формирование отчетов по счетчикам фильтров
  • графическое представление количества байт, попавших в фильтр в реальном масштабе времени (построение кривой скорости сети)
  • запись заголовков IP-пакетов в файл или OLEDB-совместимую базу данных через интерфейс ADO
  • детализация трафика на экран в реальном масштабе времени

    • Сайт программы TMeter: http://tmeter.narod.ru


TMeter :: Licence agreement

Лицензия на использование и распространение TMeter
  • Все авторские права принадлежат только автору - Алексею Казаковскому.
  • Данная версия TMeter может бесплатно использоваться, а также распространяться в некоммерческих целях.
  • Автор оставляет за собой право отменить действие данной лицензии для любой из следующих версий.
  • TMeter распространяется свободно, при условии того, что настоящий дистрибутив не изменен. Ни одно частное лицо или организация не может брать плату за использование или распространение TMeter без письменного разрешения автора.
  • TMETER ПОСТАВЛЯЕТСЯ ПО ПРИНЦИПУ "AS IS". НИКАКИХ ГАРАНТИЙ НЕ ПРИЛАГАЕТСЯ И НЕ ПРЕДУСМАТРИВАЕТСЯ. ВЫ ИСПОЛЬЗУЕТЕ ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ НА СВОЙ РИСК. АВТОР НЕ БУДЕТ ОТВЕЧАТЬ НИ ЗА КАКИЕ ПОТЕРИ ИЛИ ИСКАЖЕНИЯ ДАННЫХ, ЛЮБУЮ УПУЩЕННУЮ ВЫГОДУ В ПРОЦЕССЕ ИСПОЛЬЗОВАНИЯ ИЛИ НЕПРАВИЛЬНОГО ИСПОЛЬЗОВАНИЯ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.
  • Вы не можете использовать, компилировать, копировать, создавать новые версии, сдавать в наем или аренду, продавать, передавать программу или любые из ее составляющих, иначе, чем определено настоящим лицензионным соглашением. Любое такое нелегальное использование означает автоматическое и немедленное прекращение действия настоящего соглашения и может преследоваться по закону. Все права не предоставленные здесь явно сохраняются за Алексеем Казаковским.
  • Установка и использование TMeter означает, что вы понимаете положения настоящего лицензионного соглашения и согласны с ними.
  • Если почему-либо вы не согласны с этим лицензионным соглашением, вам необходимо удалить файлы дистрибутива TMeter с ваших устройств хранения информации и прекратить использование TMeter.


TMeter :: Support

Техническая поддержка

Вопросы, связанные с использованием программы и настройками фильтров могут задавать автору напрямую только зарегистрированные пользователи. Незарегистрированные пользователи могут задать свой вопрос через форум.

Зарегистрировав TMeter, Вы поддержите дальнейшее развитие проекта и получите техподдержку от разработчиков сроком на 1 год. Кроме того, в случае прекращения распространения TMeter на бесплатной основе, Вы, как зарегистрированный пользователь, получите возможность купить TMeter c 50%-скидкой. Средства, полученные от регистрации пойдут, в основном, на оплату услуг хостинга проекта.

Стоимость регистрации для физических лиц $10, для юридических лиц $15.

Регистрация TMeter - дело добровольное. Незарегистрированная версия TMeter не содержит никаких функциональных ограничений и работоспособна на все 100%. Перевести деньги за регистрацию автору можно практически любым способом (свяжитесь с автором!), например, через платежную систему www.webmoney.ru. Реквизиты для регистрации:

WM ID: 445854824478
Кошелек: Z969493319099

Если Вам нужен счет для безналичной оплаты, свяжитесь с автором!

После поступления денег на расчетный счет, Вы получите по e-mail персональный регистрационный ключ. Все вопросы, связанные с регистрацией TMeter, рекомендуется решать исключительно только через e-mail tmeter@narod.ru


TMeter :: New features

Если Вам нужны новые возможности TMeter

Программа TMeter постоянно развивается, в нее добавляются новые возможности на усмотрение автора. Однако, если Вам нужно быстро включить в программу TMeter новые возможности или доработать программу под свои нужды - напишите автору. Данная услуга будет предоставлена естественно не бесплатно.


TMeter :: Bug report

Как сообщить об ошибке

Автор с удовольствием примет сообщение об ошибке (bug report) по адресу tmeter@narod.ru. Пожалуйста, вложите в письмо файл adapters_TMeter.txt из папки запуска TMeter. Этот файл содержит номера версий важнейших файлов. Однако если

TMeter не определяет установленных сетевых адаптеров. Что делать?

Сетевые адаптеры определяет драйвер WinPcap, а не TMeter. Поэтому рекомендации следующие:

  • Убедитесь, что на вашем компьютере не установлена программа ZxSniffer. ZxSniffer и WinPcap не работают на одном компьютерe
  • Убедитесь что в вашем компьютере установлено не более 1 процессора. WinPcap не работает на мультипроцессорных системах. Если вам все-таки позарез необходимо запустить TMeter на мультипроцессорной системе, можно отключить "мешающие" процессоры добавив строчку /NUMPROCS=1 в c:\boot.ini и перезагрузить систему
  • Убедитесь, что вы имеете права администратора. Необходимо, чтобы установка драйвера WinPcap выполнялась под административным аккаунтом
  • Убедитесь, что компьютер был перезагружен после установки драйвера WinPcap
  • Если ваш компьютер имеет два или более адаптеров одинаковых типов, попробуйте заменить один из них. Иногда это помогает.
  • Если ничего из вышеперечисленного не помогло, сделайте следующее. Скачайте packet.dll с возможностью протоколирования отладочной информации packet.dll для Windows 9x/ME или packet.dll для Windows NT/2000/XP и перепишите вместо "настоящей" packet.dll (например, c:\windows\system для Windows 9x/ME или c:\winnt\system32 для Windows NT/2000/XP). Далее запустите TMeter и в папке запуска TMeter'a появятся следующие файлы, которые необходимо заархивировать и отослать на адрес tmeter@narod.ru:
    - winpcap_debug.txt
    - adapters.reg
    - npf.reg
    - services.reg
    - tcpip.reg
  • Вместе с отладочной информацией пришлите файл "adapters_TMeter.txt" из папки запуска TMeter'a


TMeter :: Installation

Системные требования
  • Pentium 133 или выше, 32 Мбайт RAM
  • Microsoft Windows 95/98/ME/NT/2000/XP (Microsoft Windows 95 использовать не рекомендуется)
  • Microsoft Internet Explorer 4.0 или выше
  • Установленный Windows Packet Capture Driver (WinPcap)
    (http://winpcap.polito.it)

Драйвер WinPcap распространяется вместе с дистрибутивом TMeter. Если драйвер WinPcap не установлен на вашем компьютере, установите его и перезагрузите компьютер.

С чего начать?

Во-первых, не забудьте установить драйвер WinPcap. Во-вторых, запустите TMeter и убедитесь, что список сетевых адаптеров не пуст. Следующий шаг - создание фильтров для трафика. Для того, чтобы заняться подсчетом трафика, необходимо точно знать какой трафик вам нужно считать. TMeter имеет гибкую систему фильтров и правил, которая позволяет очень тонко настроить программу под свои нужды. Не забудьте сохранить в файле созданные фильтры, иначе все сформированные правила исчезнут из TMetera'a.


TMeter :: Planning installation

Планирование установки TMeter

Перед установкой TMeter, вам следует сделать анализ конфигурации компьютерной сети, для того чтобы определить оптимальное местоположение TMeter.

Простейшая сеть

В малых и средних организациях, компьютерная сеть может состоять только из одного сегмента к которому подключены все рабочие станции. Сегмент подключен к Интернет при помощи роутера/шлюза/файрволла как показано на рисунке 1.

Рисунок 1. Конфигурация простейшей сети

Для данной простейшей конфигурации сети, TMeter можно установить на компьютер подключенный к хабу через который передается весь трафик к и от Интернет-шлюза. При этом, сетевая карта на компьютере с TMeter должна быть переведена в promiscuous mode.

Рисунок 1. Конфигурация простейшей сети с программным шлюзом

В случае, если шлюз является программным на базе Windows, например ICS for Windows 2000, Microsoft Proxy Server 2.0, WinGate, WinProxy, WinRoute и т.п., то TMeter можно установить непросредственно на сервере, а сетевую карту в promiscuous mode переводить не обязательно.

Switched сети

Сеть, показанная на рисунке 1 использует хаб для подключения рабочих станций к шлюзу. В этом случае, все пакеты, передаваемые от рабочих станций будут доставлены до компьютера на котором установлен TMeter. В "switched"-сетях, сетевой свитч (или Ethernet-switch) используется для сегментирования сети (например, для уменьшения загрузки сети путем целенаправленной пересылки пакетов между портами сетевого свитча).

При использовании неуправляемого свитча, невозможно подключить компьютер с TMeter напрямую к свитчу, т.к. сетевые пакеты не будут доходить до компьютера с TMeter'ом. В этом случае необходимо установить дополнительный хаб между свитчем и Интернет-шлюзом. Этот случай представлен на рисунке 3.

Рисунок 3. Сеть с неуправляемым свитчем

При использовании управляемого свитча, его можно сконфигурировать так, чтобы он пересылал все данные на специальный порт ("monitor" or "spanning" port) и подключить компьютер с TMeter к данному порту как показано на рисунке 4.

Рисунок 4. Сеть с управляемым свитчем


TMeter :: Filters and rules

Что такое фильтр?

Фильтр - совокупность правил при помощи которых можно разделять трафик по определенным признакам. Для каждого фильтра на графике рисуется кривая, которая показывает сколько байт попало в фильтр за заданный временной интервал. Для того, чтобы IP-пакет попал в фильтр, необходимо, чтобы сработало хотя бы одно правило, записанное в фильтре.

Что такое правило?

Каждой правило состоит из следующих компонентов:

  • IP-адрес (или IP-подсеть) отправителя
  • IP-адрес (или IP-подсеть) получателя
  • Тип протокола IP (ICMP,TCP,UDP)
  • Поле "Type of Service" протокола IP (см. подробности)
  • Порт отправителя (для TCP- и UDP-пакетов)
  • Порт назначения (для TCP- и UDP-пакетов)
  • Признак отраженности (mirrored) - это также распространяется на пакеты с полностью противоположными адресами источника и назначения

Максимальное количество правил в фильтре - 50.

В качестве IP-адресов отправителя или получателя можно использовать следующие методы назначения IP-адресов:

  • "Мой компьютер" - означает любой IP-адрес принадлежащий данному компьютеру
  • "Любой IP-адрес"
  • "Определенный IP-адрес" - необходимо указать IP-адрес, который будет использоваться в правиле, например, "192.168.0.1"
  • "Определенная IP-подсеть" - необходимо указать адрес IP-подсети и ее маску, например, "192.168.0.0/255.255.255.0"
  • "Определенный диапазон адресов" - означает любой адрес, который "попадает" в заданный интервал адресов
  • "Адреса моей лок. сети" - означает любой адрес, который попал в один из диапазонов, определенных в таблице локальных адресов
  • "Адрес глобальной сети" - означает любой адрес, который не попал ни в один из диапазонов, определенных в таблице локальных адресов
  • "Определенный MAC адрес" - означает определенный MAC-адрес Ethernet адаптера, например 112233445566 или 11-22-33-44-55-66


TMeter :: Filter manager

Менеджер фильтров

Фильтр - основное понятие TMeter. Каждый фильтр имеет счетчик посланных и принятых байт, кривую на графике отображающую скорость пакетов попавших в фильтр и т.п.

Менеджер фильтров предназначен для добавления, редактирования, изменения или перемещения фильтров. Двигая фильтр вверх или вниз в списке, вы меняете всего лишь порядок следования, который играет роль только при выводе фильтров в таблице главного окна или при формировании отчетов. На производительность программы порядок следования фильтров не влияет, т.к. собранные сетевые пакеты проходят через каждый фильтр в наборе, независимо от того сработало ли правило в фильтре или нет.

Попасть в менеджер фильтров можно через команду "Редактирование фильтров":

Ctrl+N


TMeter :: Filter editor

Редактор фильтра

Редактор фильтра позволяет настраивать все параметры фильтра. Здесь можно добавить, модифицировать или удалить правила входящие в фильтр. Помните, чтобы пакет попал в фильтр, необходимо чтобы сработало хотя бы одно правило перечисленное в фильтре. Максимальное количество правил в фильтре - 50.

Совет: Для лучшей производительности, размещайте наиболее часто используемые правила вверху, т.к. пакет в фильтре обрабатывается до первого попадания в правило.

"Протоколирование трафика" предоставляет возможность записи лог-файл или базу данных заголовков всех IP-пакетов, попавших в данный фильтр. Таким образом, это существенно расширяет возможности простого счетчика пакетов.

Попасть в редактор фильтра можно из "Менеджера фильтров"


TMeter :: Rule editor

Редактор правила

Правило определяет условия при котором пакет может попасть в фильтр. Для того, чтобы правило сработало, необходимо чтобы выполнились все условия, перечисленные в правиле.

Свойство "Mirrored" ("отраженность") определяет так называемое направление попадания:

  • Если свойство "Mirrored" выключено, то для того чтобы пакет попал в правило, необходимо чтобы IP-пакет в точности соответствовал условиям. При этом произойдет так называемое "прямое" попадание и обновляться будет только счетчик переданных байт (sent bytes counter).
  • Если свойство "Mirrored" включено, то данное правило будет срабатывать также и на "отраженных" пакетах, т.е. на пакетах с полностью противоположными адресами источника и назначения. При этом "отраженное" (или "обратное") попадание будет обновлять счетчик принятых (recv bytes counter) байт.

Попасть в редактор правила можно из редактора фильтра.


TMeter :: TOS

Поле "Type of Service" протокола IP

В программе TMeter можно создавать фильтры с учетом поля Type of Service заголовка протокола IP. Поле Type of Service - 8-ми битное поле определяет желаемое качество обслуживания пакета при его доставке.


TMeter :: The preliminary filter

Предварительный фильтр

Предварительный фильтр позволяет "просеивать" трафик еще до того, как он поступит к основным фильтрам. Очень часто в локальных сетях Microsoft помимо Web-трафика используется и файловый сервис между клиентскими компьютерами, который не следует, разумеется, тарифицировать. Создав предварительный фильтр на Netbios-пакеты (TCP и UDP порты 137,138,139), эти Netbios-пакеты не будут попадать в основные фильтры, что, таким образом, повысит производительность программы за счет сокращения вычислительных операций, требующихся для обработки каждого IP-пакета.

Предварительный фильтр эффективен для повышения производительности только в том случае, когда суммарное количество правил в основых фильтрах на порядок больше количества правил в предварительном фильтре, а также когда интенсивность фильтруемого трафика достаточно высока. (Под интенсивностью в данном случае понимается интервал между поступлениями пакетов. Для пакетов между хостами в локальной сети интенсивность, как правило, высокая.)

Кроме того, использование предварительного фильтра может упростить создание основного набора фильтров, перечислив, например, в предварительном фильтре только те сервисы, которые следует тарифицировать (SMTP,POP3,WEB и т.д.) и отбросив остальные.

Предварительный фильтр не имеет счетчиков. Предварительный фильтр не является файрволлом.

Попасть в редактор предварительного фильтра можно через команду "Редактирование фильтров":

Ctrl+N


TMeter :: LAT

Таблица локальных адресов

Таблица локальных адресов (Local Address Table - LAT) описывает адреса вашей локальной сети. Таким образом, например, вы можете создавать правила для фильтров , которые не учитывают трафик между хостами в локальной сети.

Сформировав таблицу локальных адресов, вы можете ссылаться в правилах для фильтров на хосты, входящие в LAT, как на "IP адреса моей локальной сети", а на хосты не входящие в LAT, как на "IP адреса глобальной сети".

При пустой таблице локальных адресов все IP-адреса рассматриваются как глобальные. Таблица локальных адресов хранится в tmf-файле фильтра. Поэтому после модификации LAT не забудьте записать сделанные изменения.

Попасть в редактор таблицы локальных адресов можно через команду "Редактирование фильтров":

Ctrl+N

Пример.
Вы администратор сети состоящей из одного Web-сервера (192.168.1.1) и четырех клиентских компьютеров (192.168.1.2-192.168.1.5). Ваша задача не учитывать трафик между клиентскими компьютерами и местным Web-сервером. Создав таблицу локальных адресов с диапазоном 192.168.1.1-192.168.1.5 и фильтры с правилами типа "192.168.1.2 - IP адреса глобальной сети", поставленная задача будет решена. Ниже представлен tmf-файл, реализующий поставленную задачу.

[Common]
Version=2.30
LAT=192.168.1.1,192.168.1.5

[Filter]
id=2
Name=Клиент 1
Color=255
Mirrored=Yes, Proto=IP, src_addr=192.168.1.2/255.255.255.255, src_port=0, dst_addr=WAN, dst_port=0

[Filter]
id=3
Name=Клиент 2
Color=8421631
Mirrored=Yes, Proto=IP, src_addr=192.168.1.3/255.255.255.255, src_port=0, dst_addr=WAN, dst_port=0

[Filter]
id=4
Name=Клиент 3
Color=4227327
Mirrored=Yes, Proto=IP, src_addr=192.168.1.4/255.255.255.255, src_port=0, dst_addr=WAN, dst_port=0

[Filter]
id=5
Name=Клиент 4
Color=12615935
Mirrored=Yes, Proto=IP, src_addr=192.168.1.5/255.255.255.255, src_port=0, dst_addr=WAN, dst_port=0


TMeter :: Counters logging

Протоколирование счетчиков

При перезапуске TMeter значения счетчиков обнуляются. Чтобы не потерять полученную статистику работы пользователей, рекомендуется включить протоколирование счетчиков.

Каждый фильтр имеет два счетчика:

  • Счетчик переданных байт
  • Счетчик полученных байт. В этот счетчик попадают так называемые отраженные пакеты (т.е. пакеты с полностью противоположными адресами источника и назначения), если сработало правило с включенным признаком отраженности.

Счетчики обнуляются при завершении сбора сетевых пакетов. При приостановке сбора счетчики не обнуляются.

Включить возможность протоколирования счетчиков можно в Редакторе фильтров (Ctrl+N), вкладка "Протоколирование счетчиков":

  • Протоколирование счетчиков в текстовые файлы. Необходимо задать шаблон файлов
  • Протоколирование счетчиков в базу данных. Необходимо задать OLE DB инитстроку, создать таблицу в базе данных с минимальным набором полей, шаблон поля timestamp и количество интервалов обновления через которые будет происходить сброс счетчиков в базу данных

Попасть в диалог настройки протоколирования счетчиков можно через команду "Редактирование фильтров":

Ctrl+N


TMeter :: Table for counters logging

Таблица для протоколирования счетчиков в базу данных

В базе данных необходимо создать таблицу со следующим минимальным набором полей:

N | Имя поля | Тип поля
1. | filterid | int
2. | timestamp* | numeric (10)
3. | sent** | numeric (12)
4. | recv** | numeric (12)
  • * Количество цифр в поле timestamp должно зависеть от заданного значения шаблона поля timestamp
  • ** Количество цифр в полях sent и recv произвольное. Оно зависит от предполагаемого объема хранимых данных в этих ячейках

Для Microsoft SQL Server можно использовать следующий скрипт для создания таблицы:

CREATE TABLE [dbo].[counters] (
   [filterid] [smallint] NOT NULL ,
   [timestamp] [numeric](10) NOT NULL ,
   [sent] [numeric](12) NULL ,
   [recv] [numeric](12) NULL
) ON [PRIMARY]
GO

Для Microsoft Access база данных для хранения счетчиков может выглядеть следующим образом:


TMeter :: Timestamp template for counters logging

Шаблон поля timestamp для протоколирования счетчиков в базу данных

Шаблон поля timestamp задает идентификатор, который будет подставляться в поле timestamp таблицы для хранения счетчиков. Идентификатор поля timestamp вычисляется на основании показаний системных часов.

Шаблон поля timestamp может состоять из следующих описателей:
%Y - текущий год, 4 цифры, например 2002
%y - текущий год, 2 последние цифры
%m - текущий месяц, 2 цифры
%d - текущий день месяца, 2 цифры
%h - текущий час дня, 2 цифры

В шаблоне поля timestamp допускается использование только описателей, указанных выше.

Например, если шаблон поля timestamp равен %Y%m%d, то идентификатор в поле timestamp будет подставлено значение 20020101 (если системые часы показывают 1 января 2002 г.)


TMeter :: Packets logging

Протоколирование пакетов

TMeter позволяет вести протокол пакетов, попавших в фильтр. Для этого каждый фильтр имеет свой независимый коллектор пакетов. Коллектор - это специальное "хранилище" для пакетов. Хранить информацию о каждом собранном пакете неразумно, т.к. для каждого сеанса связи пакеты, как правило, имеют общие характеристики (например, протокол, адрес источника и назначения и т.п.). Поэтому пакеты в коллекторе собираются в специальные "ячейки" или "позиции". Размер коллектора задается в позициях. Каждая позиция хранит следующую информацию о пакетах попавших в фильтр: - тип протокола - адрес и порт отправителя - адрес и порт получателя - размер переданных и принятых байт

Коллектор пакетов каждого фильтра, в свою очередь, состоит из двух частей - realtime-коллектора и flush-коллектора. В Realtime-коллектор помещаются собранные пакеты которые удовлятворяют по-крайней мере одному правилу входящему в фильтр. Размер realtime-коллектора задает пользователь в редакторе фильтра (от 100 до 1000 позиций). Всегда следует помнить, что большой размер коллектора пакетов (более 800 позиций) и высокая интенсивность попаданий пакетов в фильтр понижает производительность системы, т.к. при каждом попадании пакета в фильтр просматривается весь коллектор на предмет поиска подходящей позиции для пакета. Если свободной позиции для нового пакета в realtime-коллекторе не обнаружено, то это означает "переполнение realtime-коллектора". Переполнение realtime-коллектора означает, что часть информации о пакетах, попавших в фильтр будет утеряна. Поэтому, при регулярном переполении realtime-коллектора его размер можно увеличить или уменьшить интервал записи коллектора.

При наступлении события, называемого "сбросом коллектора" в файл или в базу данных, содержимое realtime-коллектора копируется в flush-коллектор. Далее содержимое realtime-коллектора очищается, а содержимое flush-коллекторa записывается в файл или в базу данных. В случае удачной записи flush-коллектора его содержимое очищается и он готов к приему очередной порции данных из realtime-коллектора. Если содержимое flush-коллектора записать не удалось по какой-либо причине (например, связь с базой данных потеряна), то несохранненные данные из flush-коллектора будут записаны при наступлении следующего события "сброс коллектора". Размер flush-коллектора - 2000 позиций.

При записе в файл необходимо в окне редактирования фильтра задать шаблон файлов для протоколирования пакетов. Поскольку каждый фильтр имеет свой независимый коллектор пакетов, поэтому шаблоны файлов должны быть уникальны для каждого фильтра.

Пример файла с протоколом пакетов показан ниже. Строки, начинающиеся с "---" содержат временную метку сброса коллектора пакетов в данный файл. Далее идут непосредственно данные о сетевых пакетах, которые попали в фильтр за время от последнего сброса коллектора. Первое поле - тип протокола, второе и третье поле - адрес и порт источника, четвертое и пятое поле - адрес и порт получателя, шестое и седьмое поле - количество переданных и принятых байт соответственно.

--- Time: 2001-09-12 11:32:54
 TCP 192.168.190.62  2532  192.168.190.11   143    1174    1492
 TCP 192.168.190.62  2533  192.168.190.11   143     450     811
 TCP 192.168.190.62  2534  192.168.190.11   143     471     636
 TCP 192.168.190.62  2535  192.168.190.11   143     453     809

--- Time: 2001-09-12 11:33:06
 TCP 192.168.190.62  2502  192.168.190.11  3128      80    3033
 TCP 192.168.190.62  2537  192.168.190.11  3128     562    1562
 TCP 192.168.190.62  2538  192.168.190.11  3128     547    1562
 TCP 192.168.190.62  2539  192.168.190.11  3128     557    1562

--- Time: 2001-09-12 11:34:42
 TCP 192.168.190.62  2502  192.168.190.11  3128      80    1541
 TCP 192.168.190.62  2540  192.168.190.11  3128     557    1562
 TCP 192.168.190.62  2541  192.168.190.11  3128     615    1562

Режим компрессии непривилегированнных портов

Как видно из примера лог-файла пакетов выше, открытие одной web-странички в Интернет-браузере приводит к установлении нескольких TCP-соединений одновременно. Поэтому, чтобы сократить объем протоколируемой информации, TMeter применяет так называемый режим "компрессии непривилегированных портов". Суть его в следующем. Как известно, существует два типа TCP- и UDP-портов: "привилегированные" (порты с номерами от 0 до 1023) и "непривилегированные" (порты с номерами от 1024 до 65535). Как правило, привилегированные порты используют различные сервисы (например, порт 80 - протокол http, порт 53 - протокол DNS), а непривилегированные порты используются клиентскими программами. В режиме компрессии непривилегированных портов во всех соединениях типа "клиент-сервер" клиентский порт будет заменяться на число 65535. Это число указывает на то, что один из участников соединения использовал клиентские порты (1024-65535). Таким образом, привеленный выше фрагмент лог файла будет сжат:

--- Time: 2001-09-12 11:32:54
 TCP 192.168.190.62  65535  192.168.190.11   143    2548    3748

--- Time: 2001-09-12 11:33:06
 TCP 192.168.190.62  65535  192.168.190.11  3128     142    7539

--- Time: 2001-09-12 11:34:42
 TCP 192.168.190.62  65535  192.168.190.11  3128     123    4598

Отменить использование режима компрессии непривилегированных портов можно прописав параметр NoCompressNonPrivilegedPorts=1 в секцию описания фильтра tmf-файла.

При записи пакетов в базу данных необходимо создать OLE DB инитстроку подключения к базе данных и таблицу в базе данных. TMeter сам создавать таблицу в базе данных не умеет. Для более подробной информации о настройке подключения к базе данных см. документ "Протоколирование пакетов в базу данных".


TMeter

Протоколирование пакетов в базу данных

Программа TMeter позволяет вести протоколирование пакетов в базу данных через интерфейс ADO. Для работы через ADO необходимо установить Microsoft Databases Access Components (MDAC) версии 2.5 или выше, который можно загрузить с узла www.microsoft.com/data. В качестве хранилища данных можно использовать любой SQL-сервер, имееющий своего провайдера в OLE DB (например, Microsft SQL Server, Oracle, Microsoft Access и т.д.).

Для этого, вам необходимо создать OLE DB инитстроку подключения к базе данных и таблицу с минимальным набором полей.


TMeter :: Table for packets logging

Таблица для протоколирования пакетов в базу данных

Перед тем, как TMeter будет записывать пакеты в базу данных, необходимо вручную создать таблицу в базе данных со следующим минимальным набором полей:

N | Имя поля | Тип поля
1. | filterid | int
2. | proto | int
3. | src_ip | char(15)
4. | src_port | int
5. | dst_ip | char(15)
6. | dst_port | int
7. | sent | numeric
8. | recv | numeric

Внимание! При протоколировании пакетов в базу данных по умолчанию используется режим компрессии непривилегированных портов.

Для Microsoft SQL Server 7.0 (или Microsoft SQL Server 2000) можно использовать следуюший скрипт для создания таблицы:

CREATE TABLE [dbo].[traffic] (
        [timestamp] [datetime] NULL DEFAULT CURRENT_TIMESTAMP,
        [filterid] [smallint] NULL ,
        [proto] [smallint] NULL ,
        [src_ip] [char] (15),
        [src_port] [int] NULL ,
        [dst_ip] [char] (15) ,
        [dst_port] [int] NULL ,
        [sent] [int] NULL ,
        [recv] [int] NULL
) ON [PRIMARY]
GO

Важно! Ваш SQL-сервер должен сам автоматически вставлять временную метку в поле timestamp. Для Microsoft SQL Server это можно сделать макросом CURRENT_TIMESTAMP (см. пример выше).

Для Microsoft Access можно создать следующую таблицу:

Для создания отчетов использования пакетов вам придеться вспомнить язык SQL или освоить программирование в Microsoft Access. В качестве простейшего SQL-скрипта для создания отчета можно привести следующее:

select filterid as filter, sum(sent) as sent, sum(recv) as recv
   from traffic
   group by filterid
   order by filterid


TMeter :: Properties

Настройки программы

Некоторые настройки программы являются общими для всех фильтров и хранятся в реестре:

  • Максимальная скорость сети - задает вертикальный масштаб графика на котором рисуются кривые фильтров
  • Период обновления в секундах - задает интервал времени, через который обновляется показания счетчиков в главной таблице и кривые фильтров. Кроме того, если включено "Протоколирование счетчиков", то через данный период времени будет происходить обновление счетчиков в файле. Этот параметр влияет также на интервал сброса коллекторов фильтров при протоколировании трафика.
  • При старте программы - здесь можно задать имя файла с фильтрами который будет автоматически подгружаться при каждом запуске TMeter
  • Установка пароля - определяет действия, которые будут запаролены


TMeter :: Run TMeter as service

Как запустить TMeter как сервис?

При помощи свободно распространяемой утилиты FireDaemon www.firedaemon.com возможно запустить TMeter как сервис под WinNT/2K.

Строка для установки сервиса TMeter:

"c:\Program Files\FireDaemon v0.09c\FireDaemon.exe" -i TMeter "c:\Program Files\TMeter" "c:\Program Files\TMeter\TMeter.exe" "-opt" Y 0 0 Y Y

Чтобы запустить сервис TMeter: net start TMeter
чтобы остановить сервис TMeter: net stop TMeter
чтобы удалить сервис TMeter:

"c:\Program Files\FireDaemon v0.09c\FireDaemon.exe" -u TMeter


TMeter :: FAQ

Часто задаваемые вопросы и ответы по программе TMeter (FAQ)

Как запустить TMeter как сервис?

При помощи свободно распространяемой утилиты FireDaemon. См. HOWTO

После установки драйвера WinPcap, в списке сетевых адаптеров, который показывает TMeter ничего не видно. Что делать?

См. раздел "Сообщить об ошибке".

Как запустить несколько копий программы TMeter, чтобы собирать статистику по нескольким интерфейсам одновременно?

Для запуска второй копии TMeter'a необходимо в командной строке указать ключ /2, для запуска третьей копии - ключ /3 и т.д. Всего можно запустить одновременно до 40 экземпляров TMeter'a.

Я хочу, чтобы при срабатывании фильтра раздавался звуковой сигнал или запускалась внешняя программа. Это возможно?

Нет ничего невозможного. Необходимо включить "Протоколирование трафика" в файл, например, c:\traffic\filter.txt и настроить Windows Scheduler на запуск внешнего батника раз в минуту. Этот батник должен проверять наличие файла c:\traffic\filter.txt и, если такой файл существует, отрабатывать определенные действия и в конце своей работы удалять файл c:\traffic\filter.txt. Т.е. файл c:\traffic\filter.txt должен служить своего рода "флагом" на запуск определенного события при попадании пакета в фильтр. Звуковой сигнал можно издавать при помощи внешней программы, запускаемой из батника.

У меня не работает сбор пакетов на ppp-соединении под Windows NT/2000. Что мне делать?

К сожалению, этого не умеет делать драйвер Windows Packet Capture (WinPcap). Может быть, в следующих версиях WinPcap появится поддержка этой возможности.

На ppp-соединении не видно исходящих пакетов. Что делать?

На ppp-соединении следует включить promiscuous mode.

Установка драйвера WinPcap через "родную" программу установки прошла слишком быстро. Это нормально?

Да. Только не забудьте после установки драйвера WinPcap перезагрузить компьютер.

Можно ли поставить TMeter в автозапуск чтобы сбор пакетов начинался сразу после загрузки Windows?

Да, конечно. Поставьте TMeter в автозапуск. Укажите в настройках программы фильтр который необходимо автоматически подгружать при старте программы и включите опцию "Автоматически начинать сбор пакетов".

Что такое promiscuous mode?

Promiscuous mode - специальный режим сетевой карточки (Ethernet-адаптера), который позволяет собирать все сетевые пакеты, проходящие по сети даже те, которые не относятся к данному сетевому адаптеру. Другими словами, это своего рода "пассивное" прослушивание Etherenet-сегмента. Promiscuous mode бесполезен, если у вас используется свитч (коммутатор), которые не пропускает к сетевой карточке "лишние" пакеты.

Почему не работает счетчик полученных байт?

Счетчик полученных байт срабатывает на "отраженных" IP-пакетах (т.е. пакеты с полностью противоположными адресами источника и назначения), на правилах со включенным свойством "Mirrored" ("отраженное" правило)?


TMeter :: Example 1

Задача 1.

Наблюдение за исходящим и входящим трафиком моего компьютера. Создадим два фильтра - один для исходящего, другой для входящего трафика:

Filter name: From my computer to any computer (исходящий трафик):

Номер правила | Признак отраженности | Протокол | Адрес источника | Маска источника | Порт источника | Адрес назначения | Маска назначения | Порт назначения
1 | Нет | Любой | Мой компьютер |  |  | любой |  |

Исходящий трафик будет попадать в счетчик переданных байт этого фильтра.

Filter name: From my computer to any computer (входящий трафик):

Номер правила | Признак отраженности | Протокол | Адрес источника | Маска источника | Порт источника | Адрес назначения | Маска назначения | Порт назначения
1 | Нет | Любой | любой |  |  | Мой компьютер |  |

Входящий трафик будет попадать в счетчик переданных байт этого фильтра.


TMeter :: Example 2

Задача 2.

Наблюдение за исходящим и входящим трафиком моего компьютера (второй вариант). Создадим один фильтр - для исходящего и входящего трафика одновременно:

Filter name: From my computer to any computer:

Номер правила | Признак отраженности | Протокол | Адрес источника | Маска источника | Порт источника | Адрес назначения | Маска назначения | Порт назначения
1 | Да | Любой | Мой компьютер |  |  | любой |  |

Исходящий трафик будет попадать в счетчик переданных байт, а входящий трафик будет попадать в счетчик принятых байт для этого фильтра.


TMeter :: Example 3

Задача 3

Описать фильтр, в который будут попадать все пакеты от браузера Microsoft Internet Explorer, идущие с определенного IP-адреса (например, 192.168.0.1) на любой Web-сервер. Для этого необходимо в фильтр занести следующие правила - правило 1 для обычного http-соединения, правило 2 для защищенного (https) http-соединения:

Название фильтра: Трафик от браузера

Номер правила | Признак отраженности | Протокол | Адрес источника | Маска источника | Порт источника | Адрес назначения | Маска назначения | Порт назначения
1 | Да | TCP | 192.168.0.1 |  | любой | любой |  | 80
2 | Да | TCP | 192.168.0.1 |  | любой | любой |  | 443

Т.к. правила фильтрации созданы с признаком отраженности, поэтому в счетчик переданных байт будет попадать исходящий трафик от браузера, а в счетчик принятых байт - входящий трафик к браузеру.


TMeter :: OLE DB инитстрока

Что такое OLE DB инитстрока?

Программа TMeter может протоколировать в базу данных счетчики и/или заголовки IP пакетов. Для взаимодействия с базой данных, TMeter использует интерфейс ADO (ActiveX Data Objects), который уже встроен в операционную систему Windows. Компоненты ADO свободно распространяются в пакете Microsoft Databases Access Components (MDAC), который можно загрузить с узла www.microsoft.com/data.

OLE DB - набор COM-интерфейсов, предоставляющих приложению единообразный доступ к данным самых различных источников независимо от их местонахождения или типа. ADO (ActiveX Data Objects) реализует высокопроизводительный и удобный прикладной интефейс для OLE DB

Для подключения к базе данных программа TMeter создает ADO-объект Connection. Строка подключения (или OLE DB инитстрока) задает источник данных, базу данных и параметры защиты. Например, строка подключения к базе данных MS SQL Server может выглядеть так:

SQLOLEDB.1;Password=tmeter;Persist Security Info=True;User ID=tmeter;Initial Catalog=traffic;Data Source=SERVERNAME

OLE DB инитстроку можно хранить в специальном дисковом файле. Он называется файлом подключения к источнику данных (data link file) и имеет расширение *.udl. При установке OLE DB вы можете сконфигурировать файл подключения средствами простого пользовательского интефейса. По завершении его настройки Вам надо просто указать его в строке подключения следующим образом:

File Name=c:\DataLinks\tmeter.udl

В случае изменений базы данных или сетевой конфигурации вам удастся легко модифицировать этот файл и распространить его новую версию.

  • Как создать файл подключения (как создать OLE DB инитстроку) для Microsoft SQL Server 7.0/2000 ?
  • Как создать файл подключения (как создать OLE DB инитстроку) для Microsoft Access 7.0/2000/XP ?


TMeter :: OLE DB инитстрока для Microsoft SQL Server

Как создать файл подключения (как создать OLE DB инитстроку) для Microsoft SQL Server 7.0/2000 ?

Для того, чтобы вы могли проверить правильность формирования OLE DB инитстроки, рекомендуется иметь созданную базу данных для программы TMeter в Microsoft SQL Server и учетную запись для работы с этой базой данных.

  • Создайте файл нулевой длины с расширением *.udl, например tmeter.udl
  • В Windows Explorer щелкните по созданному файлу и запустится приложение "Microsoft Data Link Properties"
  • Выберите провайдера хранилища данных Microsoft OLE DB Provider for SQL Server и щелкните по кнопке Next:
  • Заполните поля во вкладках "Connection" и щелкните по кнопке Test Connection, а затем по кнопке OK:


TMeter :: OLE DB инитстрока для Microsoft Access

Как создать файл подключения (как создать OLE DB инитстроку) для Microsoft Access 7.0/2000/XP ?

Для того, чтобы вы могли проверить правильность формирования OLE DB инитстроки, рекомендуется иметь созданную базу данных для программы TMeter в Microsoft Access.

  • Создайте файл нулевой длины с расширением *.udl, например tmeter.udl
  • В Windows Explorer щелкните по созданному файлу и запустится приложение "Microsoft Data Link Properties"
  • Выберите провайдера хранилища данных Microsoft OLE DB Provider for ODBC drivers и щелкните по кнопке Next:
  • Заполните поля во вкладках "Connection" и щелкните по кнопке Test Connection, а затем по кнопке OK:


TMeter :: Шаблон файлов

Шаблон файлов

При протоколировании в файл различных операций, например, запись счетчиков или трафика, в качестве имени файла допускается задание шаблонов, в которых могут быть использованы элементы текущего времени. Например, шаблон файлов:

c:\TMeter\Counter_%Y-%M-%d.txt

будет означать файл с именем c:\TMeter\Counter_2002-Jan-01.txt (если системые часы показывают 1 января 2002 года). Таким образом, использование шаблонов файлов позволяет автоматически создавать отчеты по дням, месяцам или другим признакам.

Идентификаторы, которые можно применять в шаблонах файлов:

%Y - текущий год, 4 цифры, например 2002
%y - текущий год, 2 последние цифры
%m - текущий месяц, 2 цифры
%M - текущий месяц, 3-х буквенное сокращение (например, Feb)
%d - текущий день месяца, 2 цифры
%h - текущий час дня, 2 цифры

По шаблонам файлов, TMeter умеет создавать папки с одним уровнем вложенности. Например, следующий шаблон:

c:\Reports\traffic\User1\%M\%d.txt

будет корректно работать, если существует папка c:\Reports\traffic\User1


TMeter :: Examples

Рассмотрим несколько примеров построения фильтров.


TMeter :: First steps

TMeter - с чего начать.

Во-первых, не забудьте установить драйвер WinPcap. Во-вторых, запустите TMeter и убедитесь, что список сетевых адаптеров не пуст. Следующий шаг - создание фильтров для трафика. Для того, чтобы заняться подсчетом трафика, необходимо точно знать какой трафик вам нужно считать. TMeter имеет гибкую систему фильтров и правил, которая позволяет очень тонко настроить программу под свои нужды. Не забудьте сохранить в файле созданные фильтры, иначе все сформированные правила исчезнут из TMetera'a.


TMeter

TMeter - программа предназначенная для визуализации и учета IP-трафика в реальном масштабе времени через PPP-соединение или в Ethernet-сегменте.

5 ноября 2001 г. TMeter версия 2.30. Что нового:

  • Добавлена возможность детализации трафика на экран в реальном масштабе времени
  • Добавлена возможность установки пароля на совершение некоторых действий: приостановка и завершение сбора сетевых пакетов, изменение опций программы, завершение программы, разворачивание из трэя
  • Коллектор трафика фильтра расширен до 300 позиций
  • Редактор фильтра можно теперь вызывать двойным щелчком по названию фильтра из менеджера фильтров
  • Редактор правила можно теперь вызывать двойным щелчком по правилу из редактора фильтров
  • Объединены колонки "Цвет" и "Порядковый номер фильтра" в таблице со счетчиками
  • В дистрибутив включен драйвер WinPcap версии 2.3beta для поддержки Windows XP
  • Some bugs fixed
  • Появилась техподдержка для зарегистрированных пользователей

14 сентября 2001 г. TMeter версия 2.20. Что нового:

  • Добавлена возможность протоколирования трафика в файл или базу данных. В протокол записывается время прохождения пакета, тип пакета, адрес и порт отправителя, адрес и порт получателся, размер передаваемых данных

28 августа 2001 г. TMeter версия 2.10. Что нового:

  • Добавлена возможность задавать в правилах фильтрации в качестве адреса источника и адреса назначения MAC-адреса Ethernet-адаптеров
  • Fix восстановления вертикальной координаты сплиттера при старте программы
  • Fix "перебрасывания" на 49 строку в окне счетчиков фильтров
  • Fix еще еле заметных GUI-глюков

23 августа 2001 г. TMeter версия 2.00. Что нового:

Приложение переписано из Dialog-based в MDI. Из-за этого произошло следующее:

  • Окно с графиком и со статистикой теперь можно "растягивать" как угодно
  • Убрана из таблицы колонка "Всего байт"
  • Добавлены "горячие" клавиши

10 августа 2001 г. TMeter версия 1.35. Что нового:

  • Новых функций нет, это релиз полностью посвящен устранению мелких дефектов предыдущих версий. В общем, настал полный стабилизец ;-) Какие основные баги пофиксены:
  • Устранена проблемы с меню "Запусктаться свернутым" и "Сворачиваться в лоток"
  • Переделана процедура обновления списка IP адресов
  • Добавлены важные подсказки в диалог редактирования LAT и выбора сетевого адаптера
  • В дистрибутив включен только что появившийся WinPcap версии 2.2

27 июля 2001 г. TMeter версия 1.31. Что нового:

  • Автоматическая запись счетчиков в файл теперь поддерживает ведение логов на ежемесячной основе
  • Добавлен предварительный фильтр. Это позволяет "просеивать" трафик еще до того, как он поступит к основным фильтрам.
  • Добавлена возможность сразу после запуска программы сворачиваться (сворачиваться можно даже сразу в tray)
  • Fix удаления записи из таблицы локальных адресов
  • Fix ведения логов большого набора фильтров (>120 фильтров)
  • Fix небольшой ошибки в процедуре проверки пакета в правиле
  • Fix ошибки при выводе больших чисел I64. Special thanx to 2e!

11 июля 2001 г. TMeter версия 1.20. Что нового:

  • Автоматическая запись счетчиков фильтров в файл - теперь вы можете организовать простейшую биллинговую систему трафика вашей сети!
  • Добавлены Tooltip'ы на панель инструментов
  • Программу теперь можно сворачивать в Tray
  • Фильтры теперь можно перемещать вверх/вниз по списку
  • Fix записи отчета в файл
  • Fix GUI с нестандартным шрифтом (Big Font)
  • Fix закрытия программы через крестик (Close window) при работающем сборе пакетов

29 июня 2001 г. TMeter версия 1.10. Что нового:

  • Правильно стали определяться IP-адреса сетевых адаптеров под Windows 98/ME
  • Добавлена таблица локальных адресов (LAT)
  • При составлении правил фильтрации пакетов в качестве адресов источника и назначения можно теперь пользоваться специальными типами данных "Мой компьютер", "IP адреса моей локальной сети" и "IP-адреса глобальной сети"
  • Новый Setup Wizard

11 июня 2001 г. Перевый релиз продукта TMeter


TMeter :: Registration info

TMeter - программа предназначенная для визуализации и учета IP-трафика в реальном масштабе времени через PPP-соединение или в Ethernet-сегменте.

Зарегистрировав программу TMeter, Вы поддержите дальнейшее развитие проекта и получите техподдержку от разработчиков сроком на 1 год. Средства, полученные от регистрации пойдут, в основном, на оплату услуг хостинга проекта.

Стоимость регистрации $10.

Регистрация TMeter - дело добровольное. Незарегистрированная версия TMeter не содержит никаких функциональных ограничений и работоспособна на все 100%.

Перевести деньги за регистрацию можно через платежную систему www.webmoney.ru. Реквизиты для регистрации:
WM ID: 445854824478
Кошелек: Z969493319099

После поступления денег на расчетный счет, Вы получите по e-mail персональный регистрационный ключ.

Все вопросы, связанные с регистрацией TMeter, рекомендуется решать исключительно только через e-mail tmeter@narod.ru